﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GUESTSMANAGEMENT.Controller
{
    public class Guests
    {
        //método que adiciona uma novo usuário
        public static void addGuests(gmguest obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                context.AddTogmguest(obj);
                context.SaveChanges();
            }
        }


        //método que atualiza um usuário
        public static void updateGuests(gmguest obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                gmguest guests = context.gmguest.Where(convidado => convidado.CDGUEST == obj.CDGUEST).FirstOrDefault();
                context.ApplyPropertyChanges("gmguest", obj);
                context.SaveChanges();

            }
        }

        //método que pega um usuário pelo Id
        public static gmguest getByGuests(int id)
        {
            //seta a usuário
            gmguest objGuests = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                objGuests =
                (from guests in context.gmguest
                 where guests.CDGUEST == id
                 select guests).FirstOrDefault();
            }
            return objGuests;
        }

        //método que pega um usuário pelo 
        public static gmguest getByGuestsEmail(string email)
        {
            //seta a usuário
            gmguest objGuests = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                objGuests =
                (from guests in context.gmguest
                 where guests.NMMAIL == email
                 select guests).FirstOrDefault();
            }
            return objGuests;
        }


        //método que retorna uma lista de usuário.
        public static List<gmguest> getGridList()
        {
            //seta a variável lista            
            List<gmguest> lista = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                IQueryable<gmguest> query =
                from guests in context.gmguest
                select guests;
                lista = query.ToList();
            }
            return lista;
        }

        //Retorna os dados do usuário por Id.
        public static gmguest RetornarGuests(int id)
        {
            gmguest guests = getByGuests(id);
            return guests;
        }


        //método para deletar usuário.
        public static void deletGuests(gmguest obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                //verifica se o objeto a ser alterado existe
                gmguest guests = context.gmguest.Where(convidado => convidado.CDGUEST == obj.CDGUEST).FirstOrDefault();

                //caso o objeto exista, apaga o objeto
                if (guests != null)
                {
                    //apaga o objeto
                    context.DeleteObject(guests);

                    //salva as alterações
                    context.SaveChanges();
                }
            }
        }
    }
}